#!/usr/bin/python2.4
#
# Copyright 2009 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Handler for displaying pages."""

# Cruise Control
import base_handler

class Page(base_handler.BaseHandler):
  """Handles returning pages to the user."""

  def Call(self):

    # Query for the desired page
    page = self.db.GetPagesByPath(self.path[1:])

    if page.count() == 1:
      self.html_vars['page'] = page[0]
      self.html_vars['page_title'] = page[0].title + ' - ' + self.blog.name
      self.SetMetaInfo(page[0])
      self.RenderPage('page.html')
    else:
      new_url = self.RedirectList()
      if new_url:
        self.redirect(new_url, permanent=True)
      else:
        self.http_status_code = 404
        self.RenderPage('page.html')

  def RedirectList(self):
    # Dictionary of old paths to redirect to new locations TODO(rhickman): Create datastore for redirects
    redirects = {'/some_old_url':'/some_new_url',
      '/some_old_file.html':'/some_new_file.html',
      '/some_legacy_functon':'/'}

    if self.path in redirects:
      return redirects[self.path]
    else:
      return None
